翻訳と辞書
Words near each other
・ Protogygia
・ Protogygia biclavis
・ Protogygia comstocki
・ Protogygia pectinata
・ Protogygia whitesandsensis
・ Protogynanisa
・ Protocol (politics)
・ Protocol (science)
・ Protocol 12 to the European Convention on Human Rights
・ Protocol against the Illicit Manufacturing of and Trafficking in Firearms
・ Protocol against the Smuggling of Migrants by Land, Sea and Air
・ Protocol amending the Single Convention on Narcotic Drugs
・ Protocol analysis
・ Protocol analyzer
・ Protocol Bringing under International Control Drugs outside the Scope of the Convention of 13 July 1931 for Limiting the Manufacture and Regulating the Distribution of Narcotic Drugs
Protocol Buffers
・ Protocol Builder
・ Protocol composition logic
・ Protocol Concerning the Redeployment in Hebron
・ Protocol converter
・ Protocol Data Services
・ Protocol data unit
・ Protocol Entertainment
・ Protocol for Carrying Authentication for Network Access
・ Protocol for Limiting and Regulating the Cultivation of the Poppy Plant, the Production of, International and Wholesale Trade in, and Use of Opium
・ Protocol for Metadata Harvesting
・ Protocol for the reconstruction of Austria
・ Protocol for the reconstruction of Hungary
・ Protocol for the Suppression of Unlawful Acts against the Safety of Fixed Platforms Located on the Continental Shelf
・ Protocol for Web Description Resources


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Protocol Buffers : ウィキペディア英語版
Protocol Buffers

Protocol Buffers is a method of serializing structured data.
It is useful in developing programs to communicate with each other over a wire or for storing data. The method involves an interface description language that describes the structure of some data and a program that generates source code from that description for generating or parsing a stream of bytes that represents the structured data.
Google developed Protocol Buffers for use internally and has made protocol compilers for C++, Java and Python available to the public under a free software, open source license. Various other language implementations are also available, including C#, JavaScript, Go, Perl, PHP, Ruby, Scala and Julia.
The design goals for Protocol Buffers emphasized simplicity and performance. In particular, it was designed to be smaller and faster than XML.〔(【引用サイトリンク】 title=jvm-serializers Benchmarks )
Protocol Buffers is widely used at Google for storing and interchanging all kinds of structured information. The method serves as a basis for a custom remote procedure call (RPC) system that is used for nearly all inter-machine communication at Google.〔(【引用サイトリンク】 title=A response to Steve Vinoski )
Protocol Buffers is very similar to the Apache Thrift protocol (used by Facebook for example), except that the public Protocol Buffers implementation does not include a concrete RPC protocol stack to use for defined services.
A software developer defines data structures (called ''messages'') and services in a proto definition file (.proto) and compiles it with protoc. This compilation generates code that can be invoked by a sender or recipient of these data structures. For example, example.proto will produce example.pb.cc and example.pb.h, which will define C++ classes for each message and service that example.proto defines.
Canonically, messages are serialized into a binary wire format which is compact, forward- and backward-compatible, but not self-describing (that is, there is no way to tell the names, meaning, or full datatypes of fields without an external specification). There is no defined way to include or refer to such an external specification (schema) within a Protocol Buffers file. The officially supported implementation includes an ASCII serialization format,〔(【引用サイトリンク】 title=text_format.h - Protocol Buffers - Google Code )〕 but this format—though self-describing—loses the forward- and backward-compatibility behavior, and is thus not a good choice for applications other than debugging.
Though the primary purpose of Protocol Buffers is to facilitate network communication, its simplicity and speed make Protocol Buffers an alternative to data-centric C++ classes and structs, especially where interoperability with other languages or systems might be needed in the future.
==Example==
A schema for a particular use of protocol buffers associates data types with field names, using integers to identify each field. (The protocol buffer data contains only the numbers, not the field names, providing some bandwidth/storage savings compared with systems that include the field names in the data.)

//polyline.proto
message Point
message Line
message Polyline

The "Point" message defines two mandatory data items, ''x'' and ''y''. The data item ''label'' is optional. Each data item has a tag. The tag is defined after the equal sign. For example, ''x'' has the tag 1.
The "Line" and "Polyline" messages, which both use Point, demonstrate how composition works in Protocol Buffers. Polyline has a ''repeated'' field, which behaves like a vector.
This schema can subsequently be compiled for use by one or more programming languages. Google provides a compiler called protoc which can produce output for C++, Java or Python. Other schema compilers are available from other sources to create language-dependent output for over 20 other languages.〔(ThirdPartyAddOns - protobuf - Links to third-party add-ons. - Protocol Buffers - Google's data interchange format - Google Project Hosting ). Code.google.com. Retrieved on 2013-09-18.〕
For example, after a C++ version of the protocol buffer schema above is produced, a C++ source code file, polyline.cpp, can use the message objects as follows:

// polyline.cpp
#include "polyline.pb.h" // generated by calling "protoc polyline.proto"
Line
* createNewLine(const std::string& name)
Polyline
* createNewPolyline()


抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Protocol Buffers」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.